JUCE 處理多國語言的機制,關鍵在 juce::LocalisedStrings 類別。
為支援多國語言,呈現在 UI 上的文字以 juce::translate
函數包起來。如下程式碼片段,"Hello World!" 字串傳入 translate 函數,表示該字串可能會以不同語言呈現:
void paint (juce::Graphics&) override
{
g.setFont (juce::Font (16.0f));
g.setColour (juce::Colours::white);
g.drawText (juce::translate("Hello World!"), getLocalBounds(), juce::Justification::centred, true);
}
接著準備內含翻譯後文字的檔案,以 Key/Value Pair 的格式儲存,以下是範例:
language: French
countries: fr
Hello World!=Taiwan can help!
最後再透用官透過 LocalisedStrings 來載入預先準備的翻譯字串。開發者可依各種條件,於啟動時挑選適合的語言。LocalisedString 也可在程式執行中進行轉換。